@Luminary
2年前 提问
1个回答

微服务应用安全开发核心原则有哪些

安全小白成长记
2年前

微服务应用安全开发核心原则有以下这些:

  • 自治性:我们已经明确了微服务是自治的服务,每个服务的操作和修改都是独立于其他服务的。为了保证自治性,开发者需要将服务设计得松耦合、可独立部署。自治性也是一种团队文化。将各个服务的责任和所有权委派给有责任交付商业价值的团队,这是至关重要的。正如我们所确定的,组织设计会对系统设计产生影响。

  • 可恢复性:微服务与生俱来地具备故障隔离的机制如果开发者独立地部署这些微服务,那么当应用或者基础设施出现故障后,故障将只会影响到整个系统的一部分功能。同样,部署的功能粒度越小,开发者越能更平缓地对系统进行变更,这样才不会在发布新功能的时候发布的是一个有风险隐患的大炸弹。

  • 透明性:最重要的一点,当故障发生时,开发者需要记得微服务应用是依赖于多个服务(而非单个系统)之间的交互及其表现的,而这些服务可能是由不同的团队开发的。不管在什么时候,系统都应该是透明的、可观测的,这样既可以发现问题,也可以对问题进行诊断。应用中的每个服务都会产生来自于业务、运营和基础设施的数据、应用日志以及请求记录。因此,开发者需要搞清楚这些大量数据的含义。

  • 自动化:通过开发大批的服务来缓解应用不断变大所带来的痛苦,这看似是有悖常理的。事实上,相对于开发一个单体应用,微服务确实是一种更加复杂的架构。通过采用自动化和在基础设施内保持服务之间的一致性,开发者可以极大地降低因这些额外的复杂性引入的管理代价。开发者需要使用自动化来保证部署和系统运维过程中的正确性。

  • 一致性:最后,以恰当的方式调整开发工作是至关重要的。开发者的目标应该是围绕业务概念来组织服务和团队,只有这样安排,服务和团队的内聚性才能更高。为了理解一致性的重要性,我们考虑一下另外一种方式。许多传统的SOA系统都是分别部署它们的技术层的UI层、业务逻辑层、集成层和数据层。